#include <csugl.h>

struct Transform {
    glm::vec3 position;
    glm::vec3 scale;
    // rotate axis
    glm::vec3 axis;
    // rotate angle
    float angle;
    Transform() = default;
    Transform(const glm::vec3 &position, const glm::vec3 &axis,
                     float angle, const glm::vec3 &scale)
    : position(position), axis(axis), angle(angle), scale(scale) {
    }

    inline glm::mat4 get_trans_mat() const {
        return glm::translate(glm::mat4(1.0f), position) *
               glm::rotate(glm::mat4(1.0f), angle, axis) *
               glm::scale(glm::mat4(1.0), scale);
    }
};